题目地址 (opens new window)

  • 🙂 第一次练习 过遍数,先留一个印象
  • 😄 第二次练习

# 计数排序

解题代码

class Solution {
        public int[] relativeSortArray(int[] arr1, int[] arr2) {
        int[] aux = new int[1001];
        int[] ref = new int[arr1.length];

        // record arr1 | for ele | ele -> cnt
        for (int i = 0; i < arr1.length; i++) {
            aux[arr1[i]] ++;
        }

        int cnt = 0;
        for (int i = 0; i < arr2.length; i++) {
            while(aux[arr2[i]] > 0) {
                ref[cnt ++] = arr2[i];
                aux[arr2[i]] --;
            }
        }
        
        // 将 arr2 数组中没有存储 arr1 的元素添加
        for (int i = 0; i < 1001; i++) {
            while(aux[i] > 0) {
                ref[cnt ++] = i;
                aux[i] --;
            }
        }

        return ref;
    }
}

# 易错点

  • 易错项 1
最后编辑时间: 7/14/2020, 9:21:47 AM